home *** CD-ROM | disk | FTP | other *** search
- typevar alpha, beta, gamma ;
- type stream == num;
-
- infix isin : 3;
- infix <>, ::, :::, or, union : 4 ;
- infix +, -, and, intersect, minus, subset : 5 ;
- infix =, <, >, /=, =<, >=, *, div, mod : 6 ;
-
- data list ( alpha ) == nil ++ alpha :: list ( alpha ) ++ alpha ::: list ( alpha ) ;
-
- data set(alpha) == empty;
-
- dec true, false : truval ; ! a nasty fudge !
- dec _ : alpha ; ! another nasty fudge !
-
- dec +, -, *, div, mod : ( num # num ) -> num ;
- dec =, <, =<, >, >=, /= : ( alpha # alpha) -> truval ;
- dec <> : list ( alpha ) # list ( alpha ) -> list ( alpha ) ;
- dec and, or : ( truval # truval ) -> truval ;
- dec chr : num -> char ;
- dec ord : char -> num ;
-
- dec abs : num -> num ;
- --- abs n <= if n < 0 then 0 - n else n ;
- dec not : truval -> truval ;
- --- not ( true ) <= false ;
- --- not ( false ) <= true ;
-
-
- dec close : stream -> void ;
- dec eof : char ;
- dec getchar : stream -> char ;
- dec nl : char ;
- dec show : alpha -> alpha ;
- dec openin : list ( char ) -> stream ;
- dec openout : list ( char ) -> stream ;
- dec print : list ( char ) -> void ;
- dec putchar : ( stream # char ) -> void ;
- dec putlist : ( list ( list ( char ) ) # stream ) -> void ;
-
- dec bisect : set ( alpha ) -> ( set ( alpha ) # set ( alpha ) ) ;
- dec intersect : ( set ( alpha ) # set ( alpha ) ) -> set ( alpha ) ;
- dec isin : ( alpha # set ( alpha ) ) -> truval ;
- dec minus : ( set ( alpha ) # set ( alpha ) ) -> set ( alpha ) ;
- dec size : set ( alpha ) -> num ;
- dec split : set ( alpha ) -> ( alpha # set ( alpha ) ) ;
- dec subset : ( set ( alpha ) # set ( alpha ) ) -> truval ;
- dec union : ( set ( alpha ) # set ( alpha ) ) -> set ( alpha ) ;
-